// packageA/pages/delivery-edit/index.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        isEdit: false, // 是否是编辑模式
        submitting: false,
        showPreview: false,
        previewImage: '',
        currentImageType: '', // 'front' or 'back'

        // 表单数据
        formData: {
            id: '',
            name: '',
            phone: '',
            workType: '',
            area: '',
            location: '',
            idCard: '',
            idCardFront: '',
            idCardBack: '',
            status: 'active'
        },
        // 选择器选项
        workTypeOptions: [
            { label: '全职配送', value: 'full' },
            { label: '兼职众包', value: 'part' }
        ],

        areaOptions: [
            { label: '龙华区', value: 'longhua' },
            { label: '福田区', value: 'futian' },
            { label: '南山区', value: 'nanshan' },
            { label: '罗湖区', value: 'luohu' },
            { label: '宝安区', value: 'baoan' }
        ]
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        // 根据传入参数判断是添加还是编辑
        if (options.id) {
            // 编辑模式
            this.setData({
                isEdit: true
            });
            wx.setNavigationBarTitle({
                title: '编辑配送员'
            });
            this.loadDeliveryData(options.id);
        } else {
            // 添加模式
            this.setData({
                isEdit: false
            });
            wx.setNavigationBarTitle({
                title: '添加配送员'
            });
        }
    },
    
  // 加载配送员数据（编辑模式）
//   loadDeliveryData: function(id) {
//     // 模拟从服务器加载数据
//     const mockData = {
//       id: id,
//       name: '赵天艳',
//       phone: '13612345678',
//       workType: '0', // 对应workTypeOptions的索引
//       area: '0', // 对应areaOptions的索引
//       location: '广东省深圳市龙华区民治街道武治天虹附近',
//       idCard: '440301199001011234',
//       idCardFront: 'https://example.com/id-front.jpg',
//       idCardBack: 'https://example.com/id-back.jpg',
//       status: 'active'
//     };
    
//     this.setData({
//       formData: mockData
//     });
//   },

  // 工作类型选择
  onWorkTypeChange: function(e) {
    const value = e.detail.value;
    this.setData({
      'formData.workType': value
    });
  },

  // 区域选择
  onAreaChange: function(e) {
    const value = e.detail.value;
    this.setData({
      'formData.area': value
    });
  },

  // 状态切换
  onStatusChange: function(e) {
    const status = e.detail.value ? 'active' : 'inactive';
    this.setData({
      'formData.status': status
    });
  },

  // 选择身份证正面
  chooseIdCardFront: function() {
    this.chooseImage('front');
  },

  // 选择身份证反面
  chooseIdCardBack: function() {
    this.chooseImage('back');
  },

  // 选择图片
  chooseImage: function(type) {
    const that = this;
    wx.chooseImage({
      count: 1,
      sizeType: ['compressed'],
      sourceType: ['album', 'camera'],
      success: function(res) {
        const tempFilePath = res.tempFilePaths[0];
        
        // 这里应该上传到服务器，然后获取真实的URL
        // 模拟上传过程
        wx.showLoading({
          title: '上传中...'
        });
        
        setTimeout(() => {
          wx.hideLoading();
          if (type === 'front') {
            that.setData({
              'formData.idCardFront': tempFilePath
            });
          } else {
            that.setData({
              'formData.idCardBack': tempFilePath
            });
          }
          
          wx.showToast({
            title: '上传成功',
            icon: 'success'
          });
        }, 1000);
      },
      fail: function(err) {
        console.error('选择图片失败:', err);
        wx.showToast({
          title: '选择图片失败',
          icon: 'none'
        });
      }
    });
  },

  // 预览图片
  previewImage: function(e) {
    const type = e.currentTarget.dataset.type;
    const imageUrl = type === 'front' ? this.data.formData.idCardFront : this.data.formData.idCardBack;
    
    if (imageUrl) {
      this.setData({
        showPreview: true,
        previewImage: imageUrl,
        currentImageType: type
      });
    }
  },

  // 隐藏预览
  hidePreview: function() {
    this.setData({
      showPreview: false,
      previewImage: '',
      currentImageType: ''
    });
  },

  // 删除当前图片
  deleteCurrentImage: function() {
    const type = this.data.currentImageType;
    if (type === 'front') {
      this.setData({
        'formData.idCardFront': ''
      });
    } else {
      this.setData({
        'formData.idCardBack': ''
      });
    }
    this.hidePreview();
    
    wx.showToast({
      title: '删除成功',
      icon: 'success'
    });
  },

  // 重置密码
  resetPassword: function() {
    const that = this;
    wx.showModal({
      title: '重置密码',
      content: '确定要重置该配送员的登录密码吗？',
      success: function(res) {
        if (res.confirm) {
          // 调用重置密码接口
          wx.showLoading({
            title: '重置中...'
          });
          
          setTimeout(() => {
            wx.hideLoading();
            wx.showToast({
              title: '密码重置成功',
              icon: 'success'
            });
            
            // 显示新密码（实际开发中应该通过其他安全方式告知用户）
            wx.showModal({
              title: '密码重置成功',
              content: '新密码：123456\n请告知配送员及时修改密码',
              showCancel: false
            });
          }, 1500);
        }
      }
    });
  },

  // 表单验证
  validateForm: function(formData) {
    if (!formData.name || formData.name.trim() === '') {
      return '请输入配送员姓名';
    }
    
    if (!formData.phone || formData.phone.trim() === '') {
      return '请输入手机号码';
    }
    
    const phoneRegex = /^1[3-9]\d{9}$/;
    if (!phoneRegex.test(formData.phone)) {
      return '请输入正确的手机号码';
    }
    
    if (formData.workType === '') {
      return '请选择工作类型';
    }
    
    if (formData.area === '') {
      return '请选择工作区域';
    }
    
    if (!formData.location || formData.location.trim() === '') {
      return '请输入详细工作地址';
    }
    
    if (!formData.idCard || formData.idCard.trim() === '') {
      return '请输入身份证号码';
    }
    
    const idCardRegex = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
    if (!idCardRegex.test(formData.idCard)) {
      return '请输入正确的身份证号码';
    }
    
    if (!formData.idCardFront) {
      return '请上传身份证正面照片';
    }
    
    if (!formData.idCardBack) {
      return '请上传身份证反面照片';
    }
    
    return null;
  },

  // 表单提交
  formSubmit: function(e) {
    const formData = e.detail.value;
    
    // 合并表单数据
    const submitData = {
      ...this.data.formData,
      ...formData
    };
    
    // 验证表单
    const errorMsg = this.validateForm(submitData);
    if (errorMsg) {
      wx.showToast({
        title: errorMsg,
        icon: 'none'
      });
      return;
    }
    
    this.setData({
      submitting: true
    });
    
    // 提交数据
    this.submitFormData(submitData);
  },

  // 提交表单数据到服务器
  submitFormData: function(formData) {
    const that = this;
    const isEdit = this.data.isEdit;
    
    // 模拟API调用
    wx.showLoading({
      title: isEdit ? '保存中...' : '添加中...'
    });
    
    setTimeout(() => {
      wx.hideLoading();
      that.setData({
        submitting: false
      });
      
      // 模拟成功响应
      wx.showToast({
        title: isEdit ? '保存成功' : '添加成功',
        icon: 'success',
        duration: 2000
      });
      
      // 返回上一页
      setTimeout(() => {
        wx.navigateBack({
          delta: 1,
          success: function() {
            // 通知列表页面刷新数据
            const pages = getCurrentPages();
            const prevPage = pages[pages.length - 2];
            if (prevPage && prevPage.onRefresh) {
              prevPage.onRefresh();
            }
          }
        });
      }, 1500);
      
    }, 2000);
  },
    // 加载配送员数据（编辑模式）
    loadDeliveryData: function (id) {
        // 模拟从服务器加载数据
        const mockData = {
            id: id,
            name: '赵天艳',
            phone: '13612345678',
            workType: '0', // 对应workTypeOptions的索引
            area: '0', // 对应areaOptions的索引
            location: '广东省深圳市龙华区民治街道武治天虹附近',
            idCard: '440301199001011234',
            idCardFront: '/images/id-front.png',
            idCardBack: '/images/id-back.png',
            status: 'active'
        };

        this.setData({
            formData: mockData
        });
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})